package com.lvtu.monitor.mongo.service;

import java.util.List;
import java.util.Map;

/**
 * @Title: IBaseDaoService.java
 * @Package com.lvtu.monitor.mongo.service
 * @Description: mongo 操作service
 * @author dengcheng
 * @date 2015-5-25 下午5:46:51
 * @version V1.0.0
 */
public interface IBaseMongoService {
	
	/**
	 * 插入一条记录
	 * @param obj
	 */
	void insert(Object obj);

	/**
	 * 插入多条记录
	 * @param list
	 * @param clazz
	 */
	<T> void batchInsert(List<Class<T>> list, Class<T> clazz);

	/**
	 * 根据id查找
	 * @param id
	 * @param clazz
	 * @return
	 */
	<T> T findOne(String id, Class<T> clazz);

	/**
	 * 查找全部记录
	 * @param clazz
	 * @return
	 */
	<T> List<T> findAll(Class<T> clazz);

	/**
	 * 删除一条记录
	 * @param id
	 * @param clazz
	 */
	<T> void removeOne(String id, Class<T> clazz);
	
	/**
	 * 修改一条记录
	 * @param id
	 * @param update
	 * @param clazz
	 */
	<T> void updateOne(String id, Map<String, Object> update, Class<T> clazz);
}
